package gof_001_创建型_Create.gof_002_工厂方法_FactoryMethod.gof_001_SimpleFactory;

/**
 * 优点: 将创建对象封装到一个工厂类,该工厂类负责生产对象,外部只需要传入不同的类型即可获得不同的对象
 * 缺点: 违反开闭原则,如果需要添加其他类型 i9 的类型,就得修改该工厂类,可能导致以前的代码出错
 */
public class CPUFactory {

    public CPU getCPUByType(String type) {
        //根据传入的类型分别返回不同信号的 CPU
        switch (type) {
            case "i3":
                return new CPU_i3();
            case "i5":
                return new CPU_i5();
            case "i7":
                return new CPU_i7();
        }
        return null;
    }
}